package mysql

import (
	"e_mall_server/models"
	"go.uber.org/zap"
)

/**
 * @Author: zhaobin
 * @Description TODO
 * @Date: 2022-05-19 22:33
 */

// GetAddressList 获取收获地址列表接口
func GetAddressList(userId int64) ([]models.Address, error) {
	var addressList []models.Address
	if err := db.Where("user_id = ?", userId).Find(&addressList).Error; err != nil {
		return nil, err
	}
	return addressList, nil
}

// AddAddress 添加收获地址信息
func AddAddress(address *models.Address) error {
	zap.L().Debug("mysql.AddAddress()", zap.Any("收获地址信息", address))
	// 进行数据库添加操作
	return db.Create(address).Error
}

// UpdateAddress 修改收获地址信息
func UpdateAddress(address *models.Address) int64 {
	// 进行数据库修改操作
	return db.Debug().Model(&address).Updates(&address).RowsAffected
}

// UpdateDefaultAddressByUserId 修改某用户的所有收获地址的默认收货地址状态为0
func UpdateDefaultAddressByUserId(userId int64) error {
	// 进行数据库修改操作
	return db.Debug().Model(&models.Address{}).Where("user_id = ?", userId).Updates(map[string]interface{}{"default_address": 0}).Error
}

// DeleteAddressById 通过收获地址id删除收获地址数据
func DeleteAddressById(id int64) int64 {
	return db.Delete(&models.Address{Id: id}).RowsAffected
}

// GetAddressDetailById 通过收获地址id获取收获地址详细信息
func GetAddressDetailById(id int64) (address models.Address, err error) {
	address.Id = id
	err = db.Where("id = ?", id).Find(&address).Error
	return
}
